package com.smedi.ismedi.progress.core.port.adapter.persistence.mybatis.mapper;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.smedi.ismedi.progress.core.domain.aggregatemodel.ProjectScheduleDetailPart;
import com.smedi.ismedi.progress.core.port.adapter.persistence.model.ProgressDetailEntity;
import com.smedi.ismedi.progress.core.port.adapter.persistence.model.ProgressDetailStatus;
import com.smedi.ismedi.progress.core.port.adapter.persistence.model.ProgressEntity;
import com.smedi.ismedi.progress.core.port.adapter.persistence.model.VersionDetailEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 特种设备信息表Mapper
 *
 * @author xienannan
 * @date 2021/08/28
 */
@Mapper
public interface ProjectScheduleDetaillMapper extends BaseMapper<ProgressDetailEntity> {

    void updateData(List<ProjectScheduleDetailPart> projectScheduleDetailPart);

    void deleteByName(List<Long> names);

    ProgressDetailEntity findMaxAndMinTime(ProgressEntity progressEntity);

    Integer findProgressStatus(ProgressEntity progressEntity);

    Integer findMilestone(ProgressEntity progressEntity);

    Integer findTask(ProgressEntity progressEntity);

    Integer findMaxLagTime(ProgressEntity progressEntity);

    void insertScheduleDetaillBatch(List<ProgressDetailEntity> progressDetailEntitys);

    void deleteScheduleDetaillBatch(List<ProgressDetailEntity> progressDetailList);

    void updateByIdNes(List<ProgressDetailEntity> progressDetailEntity);

   List<ProgressDetailStatus>  selectStatus(@Param("projectId") Long projectId,@Param("scheduleId") Long scheduleId);

//    List<Long> selectByIds(LambdaQueryWrapper<ProgressDetailEntity> progressDetailEntity);
}